/**Die KLasse SucheNachReservierendeMedium
 * implementiert die Recherche ueber  die Exemplare 
von verschiedenen Medien, die resgeliehen wuerden
 * 
 * Datei: SuchenresgeliehendenMedium.java
 * Datum : 04.12.2011
 * version: 0.1
 * Autor : Gregory Keussi
 */
package suche;

import java.util.ArrayList;
import java.util.List;

import medienverwaltung.Aufsatz;
import medienverwaltung.Buch;
import medienverwaltung.Datentraeger;
import medienverwaltung.Ebook;
import medienverwaltung.Hoerbuch;
import medienverwaltung.Medium;
import medienverwaltung.Zeitschrift;
import personenverwaltung.Reservierung;

/**
 * @author Gregory Keussi Datei SuchenReservierendMedium.java Datum
 *         21.11.2011 version 0.1
 * 
 */
public class SuchenReserviertenMedium
{
  public List<Reservierung> myReservierungList = new ArrayList<Reservierung> ();

  private List<Medium> myNeueMedListe = new ArrayList<Medium> ();
  private List<Reservierung> resAufListe = new ArrayList<Reservierung> ();
  private List<Reservierung> resBucListe = new ArrayList<Reservierung> ();
  private List<Reservierung> resDatListe = new ArrayList<Reservierung> ();
  private List<Reservierung> resEboListe = new ArrayList<Reservierung> ();
  private List<Reservierung> resHoerListe = new ArrayList<Reservierung> ();
  private List<Reservierung> resZeitListe = new ArrayList<Reservierung> ();


  /*
   * Die Implementierung der parameterlos Konstruktor der Klasse.
   */

  public SuchenReserviertenMedium ()
  {
    myReservierungList = null;

  }


  public List<Reservierung> gibMyReservierungList ()
  {

    return myReservierungList;
  }


  public void setzeMyReservierungList (
      List<Reservierung> myReservierungList)
  {
    this.myReservierungList = myReservierungList;
  }


  public void ReservierungSortierung ()
  {

    for (Reservierung Reservierung : myReservierungList)
    {

      if (Reservierung.gibExemplar ().gibMedium () instanceof Buch)
      {

        myNeueMedListe.add (Reservierung.gibExemplar ().gibMedium ());
        resAufListe.add (Reservierung);

      }
      if (Reservierung.gibExemplar ().gibMedium () instanceof Aufsatz)
      {

        myNeueMedListe.add (Reservierung.gibExemplar ().gibMedium ());
        resAufListe.add (Reservierung);

      }
      if (Reservierung.gibExemplar ().gibMedium () instanceof Zeitschrift)
      {

        myNeueMedListe.add (Reservierung.gibExemplar ().gibMedium ());
        resZeitListe.add (Reservierung);

      }

      if (Reservierung.gibExemplar ().gibMedium () instanceof Ebook)
      {
        myNeueMedListe.add (Reservierung.gibExemplar ().gibMedium ());
        resAufListe.add (Reservierung);

      }

      if (Reservierung.gibExemplar ().gibMedium () instanceof Hoerbuch)
      {

        myNeueMedListe.add (Reservierung.gibExemplar ().gibMedium ());
        resHoerListe.add (Reservierung);

      }

      if (Reservierung.gibExemplar ().gibMedium () instanceof Datentraeger)
      {

        myNeueMedListe.add (Reservierung.gibExemplar ().gibMedium ());
        resDatListe.add (Reservierung);

      }

    }

  }


  public List<Reservierung> verteiler2 (int i)
  {
    List<Reservierung> l = new ArrayList<Reservierung> ();
    switch (i)
    {

    /*
     * Die Methode liefert eineSortierte Liste von Aufsatz, die
     * reservierten sind
     */
    case 0:
      l = resAufListe;

      break;

    /*
     * Die case 1 liefert eine sortierte Liste von allen Buchexemplaren,
     * die reservierten sind
     */
    case 1:
      l = resBucListe;
      break;

    /*
     * Die case 2 liefert eine sortierte Liste von allen
     * Datentraegerxemplaren, die reservierten sind
     */
    case 2:
      l = resDatListe;
      break;

    /*
     * Die case 3 liefert eine sortierte Liste von allen
     * Ebookexemplaren, die reservierten sind
     */

    case 3:
      l = resEboListe;
      break;

    /*
     * Die case 4 liefert eine sortierte Liste von allen
     * Hoerbuchexemplaren, die reservierten sind
     */
    case 4:
      l = resHoerListe;

      break;

    /*
     * Die case 5 liefert eine sortierte Liste von allen
     * Zeitschriftexemplaren, diereserviert sind
     */

    case 5:
      l = resZeitListe;
      break;

    default:
      break;

    }

    return l;
  }
}